// -------------------------------------------------------------------------------------------------

#if !defined(  __sm_qt_test_h__ )
#define __sm_qt_test_h__

#include "sea_engine.h"
#include "sea_memtracker.h"

using namespace sea;

class MyStateMachine : public StateMachine
{
    Q_OBJECT
    Q_ENUMS( Events )
public:

    MyStateMachine( StateMachine* aParent = NULL ):
        StateMachine( STATEMACHINE_NAME, aParent )
    { 
    }
    
    enum Events {
        EV_EXT_CLICK,
        EV_EXT_E1,
        EV_EXT_E2,
        EV_INT_MOUSE_INSIDE = intEventMask,
        EV_INT_MOUSE_OUTSIDE
    };

    // Add all action functions into meta system
    Q_INVOKABLE void doAction1( void* aParam )
    { 
        aParam;
        //push_event(EV_EXT_E1);
    }
    Q_INVOKABLE void doAction2( void* aParam )
    { 
        aParam;
    }
    Q_INVOKABLE void doAction3( void* aParam )
    { 
        aParam;
    }
    Q_INVOKABLE void doAction4( void* aParam )
    { 
        aParam;
    }
};

class MyThread: public QThread
{
public:
    MyThread( ) { }
    void run( );
    static OsMutex m_cr;
};

void test_QtStateMachine( );

#endif

// -------------------------------------------------------------------------------------------------
